﻿Shader "Custom/Grey"
{
	Properties
	{
		[PerRendererData] _MainTex ("Texture", 2D) = "white" {}

		// required for UI.Mask
        _StencilComp ("Stencil Comparison", Float) = 8
        _Stencil ("Stencil ID", Float) = 0
        _StencilOp ("Stencil Operation", Float) = 0
        _StencilWriteMask ("Stencil Write Mask", Float) = 255
        _StencilReadMask ("Stencil Read Mask", Float) = 255
        _ColorMask ("Color Mask", Float) = 15
	}
	SubShader
	{
		Tags      
        {       
            "Queue"="Transparent"       
            "IgnoreProjector"="True"       
            "RenderType"="Transparent"       
            "PreviewType"="Plane"      
            "CanUseSpriteAtlas"="True"      
        }

		// required for UI.Mask
        Stencil
        {
            Ref [_Stencil]
            Comp [_StencilComp]
            Pass [_StencilOp] 
            ReadMask [_StencilReadMask]
            WriteMask [_StencilWriteMask]
        }
        ColorMask [_ColorMask]

		Pass
		{
			Cull Off ZWrite Off ZTest Always
			blend SrcAlpha OneMinusSrcAlpha
			
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			
			#include "UnityCG.cginc"

			struct appdata
			{
				float4 vertex : POSITION;
				float2 uv : TEXCOORD0;
			};

			struct v2f
			{
				float2 uv : TEXCOORD0;
				float4 vertex : SV_POSITION;
			};

			v2f vert (appdata v)
			{
				v2f o;
				o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
				o.uv = v.uv;
				return o;
			}
			
			sampler2D _MainTex;

			fixed4 frag (v2f i) : SV_Target
			{
				fixed4 col = tex2D(_MainTex, i.uv);
				float grey = dot(col.rgb, fixed3(0.707, 0.707, 0.707));
				col.rgb = fixed3(grey, grey, grey);
				return col;
			}
			ENDCG
		}
	}
}
